IMPORTANT FEATURES

Column

FEATURE IMPORTANCE

Column

EVALUATION: AUC

AUC ESTIMATE

FEATURE IMPORTANCE

---
title: "Vehicle Year Prediction"
output: 
  flexdashboard::flex_dashboard:
    orientation: rows
    vertical_layout: fill
    theme: lumen
    logo: ../img/motortrend.png
    source_code: embed
    
---

```{r setup, include=FALSE}
library(flexdashboard)
library(tidymodels)
library(vip)
library(tidyverse)
library(plotly)





```



### IMPORTANT FEATURES

```{r wrangle_data}
data_prepared_tbl <- mpg %>% 
  select(displ:class) %>% 
  mutate(trans = ifelse(str_detect(trans, "auto"),
                        "auto",
                        "manual")) %>% 
  relocate(year, .before = 1) %>% 
  mutate(year = as.factor(year))

## Training/test split
set.seed(1234)

splits <- data_prepared_tbl %>% 
  initial_split(prop = .80)




```


```{r prediction}

model_fit_glm <- logistic_reg() %>% 
  set_engine("glm") %>% 
  fit(year ~ ., data = training(splits))

prediction_class_test <- predict(model_fit_glm, new_data = testing(splits), type = "class")
prediction_prob_test <- predict(model_fit_glm, new_data = testing(splits), type = "prob")

results_tbl <- bind_cols(prediction_class_test,
          prediction_prob_test,
          testing(splits))

```


Column {data-height=600}
-----------------------------------------------------------------------

### FEATURE IMPORTANCE

```{r hwy, fig.width= 14}

data_prepared_tbl %>% 
  ggplot(aes(class, hwy, color = year)) +
  geom_boxplot() +
  geom_jitter(alpha = 0.25)+
  theme_minimal(base_size = 18)+
  scale_color_viridis_d(end = 0.4, option = "viridis")+
  labs(title = "older vehicles have lower fuel economy")

```


Column {data-height=400}
-----------------------------------------------------------------------

### EVALUATION: AUC

```{r auc}

results_tbl %>% 
  roc_curve(year, .pred_1999) %>% 
  autoplot(
    options = list(
      smooth = TRUE
    )
  )


```




### AUC ESTIMATE

```{r auc_est}

auc_estimate <- results_tbl %>% 
  roc_auc(year, .pred_1999) %>% 
  select(.estimate) %>% 
  round(.,3)

gauge(as.numeric(auc_estimate * 100), min = 0, max = 100, symbol = "%")

```
### FEATURE IMPORTANCE

```{r}

model_fit_glm$fit %>% 
  vip(
    num_features = 20,
    geom         = "point",
    aesthetics   = list(
      size = 4,
      color = "#18bc9c"
    )
  )+
  theme_minimal(base_size = 18)

```